<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组去重</title>
</head>
<body>
<script>
    //数组去重
//    要求在原型链上编程
//     Array.prototype.unique = function () {
//
//     }

    // var arr = [1,1,1,2,2,2,4,4,3,3];
    // arr.unique();// --> arr = [1,2,3,4]


//    分析
//     var arr = [1,1,1,2,2,2,4,4,3,3];
//     //利用对象的属性名，同一个对象不可能要两个相同的属性名
//     //建立一个对象，把相同的数组当做对象的属性名，并随便建立属性，
//     var arrObj = {
//         1 : "ac",
//         2 : "acd",
//         3 : "acd",
//         4 : "sscs"
//     };
//     //取出对象的属性名，然后在建立一个数组

    var arr = [1,1,1,2,2,2,4,4,3,3];
    Array.prototype.unique = function () {
        var tem = {};
        var arr = [];
        var len = this.length;
        for (var i=0; i<len; i++){
            if (!tem[this[i]]){
                tem[this[i]] = this[i];
                arr.push(this[i]);
            }
        }
        return arr;
    };
    var a = arr.unique();
    console.log(a);





</script>
</body>
</html>
